package com.hardy.leecode;

/**
 * Author: Hardy
 * Date:   2020/10/30
 * Description:
 * -
 * 14. 最长公共前缀
 * 编写一个函数来查找字符串数组中的最长公共前缀。
 * <p>
 * 如果不存在公共前缀，返回空字符串 ""。
 * <p>
 * 示例 1:
 * <p>
 * 输入: ["flower","flow","flight"]
 * 输出: "fl"
 * 示例 2:
 * <p>
 * 输入: ["dog","racecar","car"]
 * 输出: ""
 * 解释: 输入不存在公共前缀。
 **/
public class Que14 {

    public static void main(String[] args) {

        System.out.println(new Solution());
    }

    static class Solution {
        public String longestCommonPrefix(String[] strs) {
            if (strs.length == 0) return "";
            if (strs.length == 1) return strs[0];

            for (int j = 0; ; j++) {
                Character c = null;
                for (String s : strs) {
                    if (s.length() <= j) return s.substring(0, j);

                    if (c == null) c = s.charAt(j);

                    if (c != s.charAt(j)) return s.substring(0, j);
                }
            }
        }
    }
}
